{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "scrolled": true
   },
   "source": [
    "# Running Qiskit Aer with GPU and cuQuantum\n",
    "\n",
    "This document introduces how to run Qiskit Aer with GPU and NVIDIA's cuQuantum API.\n",
    "Qiskit Aer supports cuStateVec APIs in cuQuantum that accelerate statevector simulator.\n",
    "\n",
    "Here is a simple example to simulate Quantum Volume circuit from Qiskit's circuit library. You can change number of qubits, depth and shots to be simulated. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "15 qubits Quantum Volume, Simulation Time = 0.004826054 sec\n",
      "{'011010000111101': 1, '100101001000001': 1, '101100010110011': 1, '011110101110001': 1, '000001110000100': 1, '001101110000100': 1, '101100010101010': 1, '010111001000001': 1, '100100010100111': 1, '001101110011000': 1}\n"
     ]
    }
   ],
   "source": [
    "from qiskit import *\n",
    "from qiskit.circuit.library import *\n",
    "from qiskit.providers.aer import *\n",
    "\n",
    "sim = AerSimulator(method='statevector', device='GPU')\n",
    "\n",
    "qubits = 15\n",
    "depth=10\n",
    "shots = 10\n",
    "\n",
    "circuit = QuantumVolume(qubits, depth, seed=0)\n",
    "circuit.measure_all()\n",
    "result = execute(circuit,sim,shots=shots,seed_simulator=12345).result()\n",
    "\n",
    "print(\"{0} qubits Quantum Volume, Simulation Time = {1} sec\".format(qubits,result.to_dict()['results'][0]['time_taken']))\n",
    "counts = result.get_counts()\n",
    "print(counts)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The example above does not use cuStateVec but calculated by using default GPU backend of Qiskit Aer.\n",
    "\n",
    "To eanble cuStateVec, runtime option cuStateVec_enable should be set to True."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cuStateVector is used for the simulation\n",
      "15 qubits, Time = 0.007037462 sec\n",
      "{'011010000111101': 1, '100101001000001': 1, '101100010110011': 1, '011110101110001': 1, '000001110000100': 1, '001101110000100': 1, '101100010101010': 1, '010111001000001': 1, '100100010100111': 1, '001101110011000': 1}\n"
     ]
    }
   ],
   "source": [
    "from qiskit import *\n",
    "from qiskit.circuit.library import *\n",
    "from qiskit.providers.aer import *\n",
    "\n",
    "sim = AerSimulator(method='statevector', device='GPU', cuStateVec_enable=True)\n",
    "\n",
    "qubits = 15\n",
    "depth=10\n",
    "shots = 10\n",
    "\n",
    "circuit = QuantumVolume(qubits, depth, seed=0)\n",
    "circuit.measure_all()\n",
    "\n",
    "result = execute(circuit,sim,shots=shots,seed_simulator=12345).result()\n",
    "\n",
    "if result.to_dict()['results'][0]['metadata']['cuStateVec_enable'] == True:\n",
    "    print(\"cuStateVector is used for the simulation\")\n",
    "print(\"{0} qubits, Time = {1} sec\".format(qubits,result.to_dict()['results'][0]['time_taken']))\n",
    "counts = result.get_counts()\n",
    "print(counts)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now let's compare the performance. Following benchmark measures simulation time of Quantum Volume for range of qubits."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7fd8f4772910>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from qiskit import *\n",
    "from qiskit.circuit.library import *\n",
    "from qiskit.providers.aer import *\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "sim = AerSimulator(method='statevector', device='GPU')\n",
    "\n",
    "shots = 100\n",
    "depth=10\n",
    "\n",
    "time_thrust= []\n",
    "time_cuStateVec= []\n",
    "qubits_list = []\n",
    "\n",
    "for qubits in range (15, 26):\n",
    "    qubits_list.append(qubits)\n",
    "    circuit = QuantumVolume(qubits, depth, seed=0)\n",
    "    circuit.measure_all()\n",
    "\n",
    "    result = execute(circuit,sim,shots=shots,seed_simulator=12345,fusion_threshold=20,cuStateVec_enable=False).result()\n",
    "    time_thrust.append(float(result.to_dict()['results'][0]['time_taken']))\n",
    "\n",
    "    result_cuStateVec = execute(circuit,sim,shots=shots,seed_simulator=12345,fusion_threshold=20,cuStateVec_enable=True).result()\n",
    "    time_cuStateVec.append(float(result_cuStateVec.to_dict()['results'][0]['time_taken']))\n",
    "\n",
    "plt.yscale(\"log\")\n",
    "plt.plot(qubits_list, time_thrust, marker=\"o\", label='ThrustGPU')\n",
    "plt.plot(qubits_list, time_cuStateVec, 'g', marker=\"x\", label='cuStateVec')\n",
    "plt.legend()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As you can see, cuStateVec is faster for higher number of qubits. This will be improved in the future release of cuQuantum and will be faster for lower number of qubits too. Before the improved release, please switch enabling/disabling cuStateVec by using cuStateVec_enable option suitable for your actual simulations."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
